package com.duoduo.config;

import com.duoduo.properties.AliOssProperties;
import com.duoduo.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置类，用于创建AliOssUtil对象
 */
@Configuration
@Slf4j
public class OssConfiguration {

    /**
     * 为 AliOssUtil 对象赋属性值并创建
     * @param aliasesOssProperties：注入AliOssProperties对象，这个Bean对象已经从yml配置文件中读取并封装了属性值
     * @return aliOssUtil工具类
     */
    @Bean
    @ConditionalOnMissingBean // 如果容器中不存在AliOssUtil对象，则创建一个，否则不创建(保证容器中只有一个AliOssUtil对象)
    public AliOssUtil aliOssUtil(AliOssProperties aliasesOssProperties){  // 注入AliOssProperties对象，这个Bean对象已经从yml配置文件中读取并封装了属性值
        log.info("开始创建AliOssUtil对象：{}",aliasesOssProperties);

        AliOssUtil aliOssUtil = new AliOssUtil(aliasesOssProperties.getEndpoint(),
                aliasesOssProperties.getAccessKeyId(),
                aliasesOssProperties.getAccessKeySecret(),
                aliasesOssProperties.getBucketName());

        return aliOssUtil;
    }
}
